package 集合泛型练习;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;

public class List集合 {
    public static void main(String[] args) {
        //1.创建List的对象,注意List是接口,不可实例化
        List<String> list=new ArrayList();
        //2.测试继承自Collection中的方法
        list.add("大力哇");
        list.add("三大姑");
        list.add("肯定会");
        list.add("八大姨");
        list.add("手动");
        //System.out.println(list);
        //清空集合里的元素
       // list.clear();
       // System.out.println(list);
        System.out.println(list.contains("三大姑"));//true,判断集合是否包含指定元素
        System.out.println(list.equals("八大姨"));//判断集合对象与String数据不等
        System.out.println(list.isEmpty());//判断集合是否为空
        System.out.println(list.remove("肯定会"));//移除集合指定的元素
        System.out.println(list.size());//获取集合中元素的个数(就是集合长度按照下标来查找的)
        System.out.println(list.toArray());//将集合转成数组
        //3.测试List接口自己的方法--List有序,可以根据索引来操作集合中的元素
        list.add("奥豪斯");//追加在最后
        list.add(1,"蛇精");
        list.add(3,"记得");
        System.out.println(list);
        System.out.println(list.indexOf("奥豪斯"));//6,获取指定元素第一次出现的索引
        System.out.println(list.lastIndexOf("奥豪斯"));//6.获取指定元素最后一次出现的索引
        System.out.println(list);
        //根据索引删除元素,并将被删除的元素原因
        System.out.println(list.remove(5));
        System.out.println(list);
        System.out.println(list.get(3));//获取指定索引处的元素
        System.out.println(list.set(5,"死的"));//修改指定索引处元素的值为死的
        System.out.println(list);
        //4.测试集合间的操作
        List <String> list1=new ArrayList<>();
        list1.add("a");
        list1.add("b");
        list1.add("c");
        list1.add("d");
        System.out.println(list1);
        //将集合list1中的元素添加到list集合中
        System.out.println( list.addAll(list1));
        System.out.println(list);//添加成功[大力哇, 蛇精, 三大姑, 记得, 八大姨, 死的, a, b, c, d]
        //将2集合的所有元素添加到list集合的指定位置
        System.out.println(list.addAll(1,list1));//在下标1添加数据[大力哇, a, b, c, d, 蛇精, 三大姑, 记得, 八大姨, 死的, a, b, c, d]
        System.out.println(list);
        //判断list集合是否包含list2中所有的元素
        System.out.println(list.containsAll(list1));
        //移除list集合中属于list1集合中的所有元素
        System.out.println(list.removeAll(list1));
        System.out.println(list);
    }
}
